<?php

use think\migration\Migrator;

@set_time_limit(0);
@ini_set('memory_limit', -1);

/**
 * 数据管理模块数据
 */
class InstallDd6Module extends Migrator
{
	public function change()
	{
		$this->_create_dd6_module();
		//$this->_create_dd6_module_log();
	}

	/**
	 * 创建数据对象
	 * @class Dd6Module
	 * @table dd6_module
	 * @return void
	 */
	private function _create_dd6_module()
	{
		// 当前数据表
		$table = 'dd6_module';

		// 存在则跳过
		if ($this->hasTable($table))
			return;

		// 创建数据表
		$this->table($table, [
			'engine' => 'InnoDB',
			'collation' => 'utf8mb4_general_ci',
			'comment' => '数据管理主表',
		])
			// ->addColumn('uuid', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '唯一标识'])
			// ->addColumn('number', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '编号'])
			// ->addColumn('type', 'integer', ['limit' => 2, 'default' => 1, 'null' => true, 'comment' => '类型'])
			// ->addColumn('type_name', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '类型名称'])
			->addColumn('name', 'string', ['limit' => 100, 'default' => '', 'null' => true, 'comment' => '名称'])
			// ->addColumn('date', 'date', ['default' => NULL, 'null' => true, 'comment' => '日期'])
			// ->addColumn('remark', 'text', ['default' => NULL, 'null' => true, 'comment' => '备注'])
			// ->addColumn('file', 'text', ['default' => NULL, 'null' => true, 'comment' => '附件'])
			// ->addColumn('file_name', 'text', ['default' => NULL, 'null' => true, 'comment' => '附件名称'])
			->addColumn('json_data', 'text', ['default' => NULL, 'null' => true, 'comment' => '辅助字段json格式'])
			// ->addColumn('status', 'integer', ['limit' => 1, 'default' => 0, 'null' => true, 'comment' => '数据状态：0草稿 1待处理 2待审批 3完成'])
			// ->addColumn('approval_status', 'integer', ['limit' => 1, 'default' => 0, 'null' => true, 'comment' => '审批状态：0待审批 1申请审批 2审批不通过 3审批通过'])
			// ->addColumn('add_admin_id', 'integer', ['limit' => 11, 'default' => 0, 'null' => true, 'comment' => '添加-操作人admin_id'])
			// ->addColumn('add_time', 'timestamp', ['default' => NULL, 'null' => true, 'comment' => '添加时间'])
			// ->addColumn('real_status', 'integer', ['limit' => 1, 'default' => 0, 'null' => true, 'comment' => '是否有效数据：0否 1是'])
			// ->addColumn('real_time', 'timestamp', ['default' => NULL, 'null' => true, 'comment' => '有效时间'])
			// ->addColumn('del_status', 'integer', ['limit' => 1, 'default' => 0, 'null' => true, 'comment' => '删除状态：0未删除 1已删除'])
			// ->addColumn('del_admin_id', 'integer', ['limit' => 11, 'default' => 0, 'null' => true, 'comment' => '删除-操作人admin_id'])
			// ->addColumn('del_time', 'timestamp', ['default' => NULL, 'null' => true, 'comment' => '删除时间'])
			// ->addColumn('last_admin_id', 'integer', ['limit' => 11, 'default' => 0, 'null' => true, 'comment' => '最后-操作人admin_id'])
			// ->addColumn('last_time', 'timestamp', ['default' => 'CURRENT_TIMESTAMP', 'null' => true, 'comment' => '最后操作时间'])
			// ->addColumn('project_uuid', 'string', ['limit' => 32, 'default' => '', 'null' => true, 'comment' => '项目uuid'])
			// ->addColumn('source', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '来源'])

			// ->addIndex('uuid', ['name' => 'idx_module_name_uuid'])
			// ->addIndex('number', ['name' => 'idx_module_name_number'])
			// ->addIndex('type', ['name' => 'idx_module_name_type'])
			// ->addIndex('type_name', ['name' => 'idx_module_name_type_name'])
			->addIndex('name', ['name' => 'idx_module_name_name'])
			// ->addIndex('date', ['name' => 'idx_module_name_date'])
			// ->addIndex('status', ['name' => 'idx_module_name_status'])
			// ->addIndex('approval_status', ['name' => 'idx_module_name_approval_status'])
			// ->addIndex('add_admin_id', ['name' => 'idx_module_name_add_admin_id'])
			// ->addIndex('real_status', ['name' => 'idx_module_name_real_status'])
			// ->addIndex('del_status', ['name' => 'idx_module_name_del_status'])
			// ->addIndex('del_admin_id', ['name' => 'idx_module_name_del_admin_id'])
			// ->addIndex('last_admin_id', ['name' => 'idx_module_name_last_admin_id'])
			// ->addIndex('project_uuid', ['name' => 'idx_module_name_project_uuid'])
			// ->addIndex('source', ['name' => 'idx_module_name_source'])
			->create();

		// 修改主键长度
		$this->table($table)->changeColumn('id', 'integer', ['limit' => 11, 'identity' => true]);
	}

	// /**
	//  * 创建日志数据对象
	//  * @class Dd6ModuleLog
	//  * @table dd6_module_log
	//  * @return void
	//  */
	// private function _create_dd6_module_log()
	// {
	// 	// 当前数据表
	// 	$table = 'dd6_module_log';

	// 	// 存在则跳过
	// 	if ($this->hasTable($table))
	// 		return;

	// 	// 创建数据表
	// 	$this->table($table, [
	// 		'engine' => 'InnoDB',
	// 		'collation' => 'utf8mb4_general_ci',
	// 		'comment' => '数据管理日志表',
	// 	])
	// 		->addColumn('pid', 'integer', ['limit' => 11, 'default' => 0, 'null' => true, 'comment' => '日志表父id-用于关联流转记录'])
	// 		->addColumn('main_id', 'integer', ['limit' => 11, 'default' => 0, 'null' => true, 'comment' => '关联主表id-用于查看改动记录'])
	// 		->addColumn('json_data_history', 'text', ['default' => NULL, 'null' => true, 'comment' => '数组json格式存储'])
	// 		->addColumn('json_data', 'text', ['default' => NULL, 'null' => true, 'comment' => '数组json格式存储-修改后'])
	// 		->addColumn('json_data_update_field', 'text', ['default' => NULL, 'null' => true, 'comment' => '数组json格式存储-操作更新字段信息'])
	// 		->addColumn('status', 'integer', ['limit' => 1, 'default' => 0, 'null' => true, 'comment' => '数据状态：0草稿 1新增 2审批 3发布 4完成'])
	// 		->addColumn('data_type', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '日志记录类型'])
	// 		->addColumn('add_admin_id', 'integer', ['limit' => 11, 'default' => 0, 'null' => true, 'comment' => '添加-操作人admin_id'])
	// 		->addColumn('add_time', 'timestamp', ['default' => NULL, 'null' => true, 'comment' => '日志记录时间'])
	// 		->addColumn('del_status', 'integer', ['limit' => 1, 'default' => 0, 'null' => true, 'comment' => '删除状态：0未删除 1已删除'])
	// 		->addColumn('del_admin_id', 'integer', ['limit' => 11, 'default' => 0, 'null' => true, 'comment' => '删除-操作人admin_id'])
	// 		->addColumn('del_time', 'timestamp', ['default' => NULL, 'null' => true, 'comment' => '删除时间'])
	// 		->addColumn('source', 'string', ['limit' => 20, 'default' => '', 'null' => true, 'comment' => '来源'])

	// 		->addIndex('pid', ['name' => 'idx_module_name_pid'])
	// 		->addIndex('main_id', ['name' => 'idx_module_name_main_id'])
	// 		->addIndex('status', ['name' => 'idx_module_name_status'])
	// 		->addIndex('data_type', ['name' => 'idx_module_name_data_type'])
	// 		->addIndex('add_admin_id', ['name' => 'idx_module_name_add_admin_id'])
	// 		->addIndex('del_status', ['name' => 'idx_module_name_del_status'])
	// 		->addIndex('del_admin_id', ['name' => 'idx_module_name_del_admin_id'])
	// 		->addIndex('source', ['name' => 'idx_module_name_source'])
	// 		->create();

	// 	// 修改主键长度
	// 	$this->table($table)->changeColumn('id', 'integer', ['limit' => 11, 'identity' => true]);
	// }
}
